En C++, la comunicación es una flujo, no un evento de almacenamiento estático. La iostream biblioteca utiliza una jerarquía polimórfica donde clases especializadas como ifstream (archivos) y istringstream (memoria) heredan de istream. Esto permite Herencia de Flujos: las funciones diseñadas para un flujo base pueden procesar datos de cualquier origen de forma transparente.
La Restricción de No Copiabilidad
Los flujos representan conexiones únicas y con estado con el hardware. Para evitar que múltiples objetos luchen por el mismo puntero de archivo o búfer de consola, los objetos de entrada/salida no pueden copiarse ni asignarse. Intentar código como ofstream out1, out2; out1 = out2; produce un error de compilación. Por lo tanto, los objetos de entrada/salida deben pasarse por referencia no constante.
El Puente Secuencial
Mientras que los flujos proporcionan la interfaz, contenedores secuenciales (vector, list) proporcionan la memoria. Los datos entrantes suelen estructurarse en estos contenedores, eligiendo vector por velocidad o list por inserciones flexibles.